// function SuperType(){ //父构造函数
//     this.property = true;
// }
// SuperType.prototype.getSuperValue = function(){ //父构造函数的原型对象。
//     return this.property;
// }
//
// function SubType(){
//     this.subproperty = false;
// }
// //SubType继承 SuperType
// SubType.prototype = new SuperType();
// SubType.prototype.getSubTypeValue = function(){
//     return this.subproperty;
// }
// let instance = new SubType();
// //instance-->instance.__proto__-->instance.__proto__.__proto__(getSuperValue)
// console.log(instance.getSuperValue());//true
// //instance-->instance.__proto__(getSubTypeValue)
// console.log(instance.getSubTypeValue());//false
//
// console.log('---------------------------------------------------------------------------------------------');
//
// console.log(instance instanceof SubType);//true
// console.log(instance.__proto__);//SuperType { property: true, getSubTypeValue: [Function] }
// console.log(instance instanceof SuperType);//true
// console.log(instance.__proto__.__proto__);//SuperType { getSuperValue: [Function] }
// console.log(instance instanceof Object);//true
// console.log(instance.__proto__.__proto__.__proto__.constructor);//[Function: Object]
// console.log(Object.prototype.isPrototypeOf(instance)); // true
// console.log(SuperType.prototype.isPrototypeOf(instance)); // true
// console.log(SubType.prototype.isPrototypeOf(instance)); // true

function SuperType(){
    this.props = true;
}
SuperType.prototype.getSuperType = function(){
    return this.props;
}
function SubType(){
    this.props = false;
}
SubType.prototype = new SuperType();
//添加新的方法
SubType.prototype.getSubType = function(){
    return this.props;
}
//覆盖已有的方法
SubType.prototype.getSuperType = function(){
    return this.props;
}
let instance = new SubType();
console.log(instance.getSubType())//false
console.log(instance.getSuperType())//false

let instance1 = new SuperType();
console.log(instance1.getSuperType())//true